﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;
using DTO;

namespace QLVeChuyenBay
{
    public partial class frmLapLichCB : Form
    {
        public frmLapLichCB()
        {
            InitializeComponent();
        }

        ChuyenBayBUS cbbus = new ChuyenBayBUS();
        TuyenBayBUS tbbus = new TuyenBayBUS();
        DateTime today;
        private void frmLapLichCB_Load(object sender, EventArgs e)
        {
            //ChuyenBayDTO dto = new ChuyenBayDTO();
            
            ////dto.MaCB = "CB"+bus.LayMaCB().ToString();
            //int masocb = cbbus.LayMaCB();
            //masocb = masocb + 1;s
            //txtMaCB.Text = "CB" + string.Format("{0:000000}",masocb);

            /*DsCB = new List<ChuyenBayDTO>();
            ChuyenBayBUS cbbus = new ChuyenBayBUS();
            DsCB = cbbus.GetCB();
            cbb_maCB.DataSource = DsCB;
            cbb_maCB.DisplayMember = "MaCB";
            cbb_maCB.ValueMember = "MaCB";
            cbb_maCB.SelectedIndex = -1;
            cbb_maCB.Text = "Chọn mã chuyến bay";*/

            txtMaCB.Text = "CB";

            today = DateTime.Now;
            dtNgayGioBay.Value = DateTime.Now;

            List<TuyenBayDTO> dsTuyenBay = new List<TuyenBayDTO>();
            dsTuyenBay = tbbus.LayTuyenBay();
            cbTuyenBay.DataSource = dsTuyenBay;
            cbTuyenBay.DisplayMember = "MaTB";
            cbTuyenBay.ValueMember = "MaTB";
            cbTuyenBay.SelectedIndex = -1;

        }

        private void cbTuyenBay_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbTuyenBay.SelectedIndex != -1 && cbTuyenBay.Focused == true)
            {
                TuyenBayDTO tbdto = new TuyenBayDTO();
                string matb = cbTuyenBay.SelectedValue.ToString();
                tbdto = tbbus.LayMotTuyenbay(matb);
                lbTuyenBay.Text = tbdto.SanBayDi + " - " + tbdto.SanBayDen;
            }
        }

        private void btnTiepNhan_Click(object sender, EventArgs e)
        {
            if (cbTuyenBay.Text == "")
            {
                MessageBox.Show("Chưa chọn tuyến bay!", "Cảnh báo", MessageBoxButtons.OK);
                return;
            }
            else
            {
                string matb = cbTuyenBay.Text;
                //ChuyenBayBUS cbbus=new ChuyenBayBUS();
                if (cbbus.KiemTraTuyenBay(matb) == "")
                {
                    MessageBox.Show("Tuyến bay " + matb + " không tồn tại!", "Cảnh báo", MessageBoxButtons.OK);
                    return;
                }
            }

            if (DateTime.Compare(dtNgayGioBay.Value, today) < 0)
            {
                MessageBox.Show("Xin chọn ngày giờ bay từ " + today.ToString("MM/dd/yyyy HH:mm") + " trở đi!", "Cảnh báo", MessageBoxButtons.OK);
                return;
            }

            if (txtThoiGianBay.Text == "")
            {
                MessageBox.Show("Chưa nhập thời gian bay!", "Cảnh báo", MessageBoxButtons.OK);
                return;
            }
            else
            {
                int n = 0;
                //n = int.TryParse(txtThoiGianBay.Text,);
                if (int.TryParse(txtThoiGianBay.Text, out n) == false)
                {
                    MessageBox.Show("Chỉ nhập số thời gian bay.", "Cảnh báo", MessageBoxButtons.OK);
                    txtThoiGianBay.Text = "";
                    return;
                }

                int tgbay = int.Parse(txtThoiGianBay.Text);
                int tgbayqd = cbbus.KiemTraThoiGianBay();
                if (tgbayqd > tgbay)
                {
                    MessageBox.Show("Thời gian bay không được nhỏ hơn thời gian tối thiểu: "+tgbayqd.ToString()+" phút", "Cảnh báo", MessageBoxButtons.OK);
                    return;
                }
            }

            if (txtSoghe1.Text == "")
            {
                MessageBox.Show("Chưa nhập số ghế hạng 1", "Cảnh báo", MessageBoxButtons.OK);
                return;
            }
            else
            {
                int n = 0;
                //n = int.TryParse(txtThoiGianBay.Text,);
                if (int.TryParse(txtSoghe1.Text, out n) == false)
                {
                    MessageBox.Show("Chỉ nhập số cho hạng ghế.", "Cảnh báo", MessageBoxButtons.OK);
                    txtSoghe1.Text = "";
                    return;
                }
            }

            if (txtSoGhe2.Text == "")
            {
                MessageBox.Show("Chưa nhập số ghế hạng 2", "Cảnh báo", MessageBoxButtons.OK);
                return;
            }
            else
            {
                int n = 0;
                //n = int.TryParse(txtThoiGianBay.Text,);
                if (int.TryParse(txtSoGhe2.Text, out n) == false)
                {
                    MessageBox.Show("Chỉ nhập số cho hạng ghế.", "Cảnh báo", MessageBoxButtons.OK);
                    txtSoGhe2.Text = "";
                    return;
                }
            }

            ChuyenBayDTO cbdto = new ChuyenBayDTO();
            cbdto.MaCB = txtMaCB.Text;
            cbdto.MaTB = cbTuyenBay.Text;
            cbdto.NgayGio=dtNgayGioBay.Value;
            //cbdto.NgayGio.Month = dtNgayGioBay.Value.Month;
            cbdto.ThoiGianBay = int.Parse(txtThoiGianBay.Text);
            cbdto.SoLuongGheHang1 = int.Parse(txtSoghe1.Text);
            cbdto.SoLuongGheHang2 = int.Parse(txtSoGhe2.Text);

            //ChuyenBayBUS cbbus = new ChuyenBayBUS();
            int res = cbbus.ThemChuyenBay(cbdto);
            if (res >= 0)
            {
                TinhTrangVeDTO ttvdto = new TinhTrangVeDTO();
                TinhTrangVeBUS ttvbus = new TinhTrangVeBUS();
                ttvdto.MaCB = cbdto.MaCB;
                List<HangVeDTO> lsthvdto = new List<HangVeDTO>();
                HangVeBUS hvbus = new HangVeBUS();
                lsthvdto = hvbus.GetAll();

                ttvdto.MaHangVe=lsthvdto[0].MaHangVe;
                ttvdto.SoGheTrong=cbdto.SoLuongGheHang1;
                ttvdto.SoGheDat = 0;
                ttvbus.ThemTinhTrangVe(ttvdto);

                ttvdto.MaHangVe = lsthvdto[1].MaHangVe;
                ttvdto.SoGheTrong = cbdto.SoLuongGheHang2;
                ttvdto.SoGheDat = 0;
                ttvbus.ThemTinhTrangVe(ttvdto);
                MessageBox.Show("Thêm chuyến bay thành công!");
            }
            else
                MessageBox.Show("Thêm thất bại!");
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn có muốn thoát?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                this.Close();
            }
        }

        private void btnTaoMoi_Click(object sender, EventArgs e)
        {
            txtMaCB.Text = "CB";
            txtThoiGianBay.Text = "";
            txtSoghe1.Text = "";
            txtSoGhe2.Text = "";
            dgvSanBayTG.Rows.Clear();
        }

        private void cbTuyenBay_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar >= 'a' && e.KeyChar <= 'z')
                e.KeyChar = Convert.ToChar(e.KeyChar.ToString().ToUpper());
            //if (string.Compare(cbTuyenBay.Text, cbTuyenBay.Items[0]) == 0)
            //    cbTuyenBay.SelectedIndex = 0;
        }

    }
}
